package homework.seven;



import java.io.File;
import java.util.*;

/*
码云作业七：5.键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如："java","txt")作为key,
    用个数作为value,放入到map集合中,并用两种方式遍历map集合
    例如：
    doc 的类型的文件有  3 个
    java 的类型的文件有  5 个
    txt 的类型的文件有  7 个
 */
public class Test {
    public static void main(String[] args) {
        Map<String,String>dirMapList=new HashMap<>();
        File file=new File("E:\\");
        getAllFile(file);
        ArrayList<String> list = getList();
        Map<String, Integer> statistics = statistics(list);
        Set<Map.Entry<String, Integer>> entries = statistics.entrySet();
        for(Iterator<Map.Entry<String, Integer>> it = entries.iterator();it.hasNext();){
            Map.Entry<String, Integer> n = it.next();
            System.out.println(n.getKey()+"的类型的文件有 "+n.getValue()+"个");
        }
    }
    public static Map<String,Integer>statistics(ArrayList<String>list){
        Map<String,Integer>mapList=new HashMap<>();
        int count=0;
        for (int i = 0; i < list.size(); i++) {
            count=0;
            for (int j =0; j < list.size(); j++) {
                if(list.get(i).equals(list.get(j))){
                    count++;
                }
            }
            mapList.put(list.get(i), count);
        }
        return mapList;
    }
    static ArrayList<String>list=new ArrayList<>();
    public static void getAllFile(File dir) {

        File[] files = dir.listFiles();
        if(dir==null){
            return;
        }
        if(files==null||files.length==0){
            return;
        }
        for (File f : files) {
            if (f.isDirectory()) {
                getAllFile(f);
            } else {
                list.add(f.getName().substring(f.getName().indexOf(".")+1));
            }
        }
    }
    public static ArrayList<String>getList(){
        return list;
    }
}
